home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / trooper.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-03-22  |  4.6 KB  |  152 lines

  1. 100  KEY OFF
  2. 110  DEF FNSZ(X,Y)=(4+INT((X+7)/8)*Y)/2
  3. 120  GOSUB 890
  4. 130  GOSUB 250
  5. 140  GOSUB 230
  6. 150  GOSUB 330
  7. 160  GOSUB 420
  8. 170  LOCATE 10,15: PRINT "GAME OVER"
  9. 180  LOCATE 12,7: PRINT "PRESS "P" PLAY AGAIN "E" QUIT":DEF SEG=0:POKE 1050,PEEK(1052)
  10. 190  A$=INKEY$:IF A$="P" THEN 200
  11. 194  IF A$<>"E" THEN 190
  12. 196  RUN"BASMENU
  13. 200  FLAG=0
  14. 210  GOTO 130
  15. 220  '
  16. 230  SCORE=0:TROOPS=10:WT=0:WS=0:RETURN
  17. 240  '
  18. 250  CLS:SCREEN 1:DEF SEG=0:POKE 1050,PEEK(1052)
  19. 260  LOCATE 10,15:PRINT "LEVEL :
  20. 270  LOCATE 12,15:PRINT "(N)ovice"
  21. 280  LOCATE 14,15:PRINT "(E)xpert"
  22. 290  A$=INKEY$:IF A$="" THEN 290
  23. 300  CLS
  24. 310  RETURN
  25. 320  '
  26. 330  CLS
  27. 340  COLOR 9,1:LINE(0,0)-(320,150),1,BF
  28. 350  GOSUB 800
  29. 360  IF A$="N" OR A$="n" THEN 370 ELSE 380
  30. 370  LINE(43,140)-(60,160),2,BF:LINE(143,140)-(168,160),2,BF:LINE(251,140)-(284,160),2,BF:A=284:B=170:C=60:D=249:E=139:F=41:GOTO 390
  31. 380  LINE(46,140)-(57,160),2,BF:LINE(146,140)-(165,160),2,BF:LINE(254,140)-(281,160),2,BF:A=281:B=165:C=57:D=252:E=144:F=44
  32. 390  LOCATE 19,7:PRINT "7":LOCATE 20,7:PRINT "5":LOCATE 19,20:PRINT "5":LOCATE 20,20:PRINT "0":LOCATE 19,34:PRINT "2":LOCATE 20,34:PRINT "5"
  33. 400  RETURN
  34. 410  '
  35. 420  PLX=1
  36. 430  DEF SEG=&H40: RANDOMIZE PEEK(&H6D)
  37. 440  GOSUB 800
  38. 450  PLY=INT(RND(1)*30)+40:NY=PLY
  39. 460  GOSUB 840
  40. 470  IF JUMP=1 THEN 490
  41. 480  IF INKEY$<>"" THEN JUMP=1:PX=PLX+5:PY=PLY+10:PUT (PX,PY),TROOP%
  42. 490  IF JUMP=1 THEN GOSUB 540
  43. 500  IF TROOPS=0 THEN FLAG=1:GOTO 520
  44. 510  GOTO 460
  45. 520  RETURN
  46. 530  '
  47. 540  PUT (PX,PY),TROOP%:PX=PX+DX:PY=PY+DY:IF PX>299 THEN PX=1
  48. 550  PUT(PX,PY),TROOP%
  49. 560  T=INT(PY):IF T<=119 AND T>=116 THEN 600
  50. 570  IF PY>=BOT THEN 730
  51. 580  RETURN
  52. 590  '
  53. 600  L=PX+9
  54. 610  IF L<=A AND L>=D THEN PAD=1:GOTO 650
  55. 620  IF L<=B AND L>=E THEN PAD=2:GOTO 650
  56. 630  IF L<=C AND L>=F THEN PAD=3:GOTO 650
  57. 640  RETURN
  58. 650  PUT(PX,PY),TROOP%:PUT(PX,PY),LAND%
  59. 660  SCORE=SCORE+PAD*25
  60. 670  LOCATE 1:PRINT "          MISSION SUCCESSFUL!          "
  61. 680  FOR W=1 TO 100:GOSUB 830:NEXT W
  62. 690  PUT(PX,PY),LAND%:NY=INT(RND(1)*30)+40
  63. 700  JUMP=0:GOSUB 800
  64. 710  DEF SEG=0:POKE 1050,PEEK(1052):RETURN
  65. 720  '
  66. 730  PUT(PX,PY),TROOP%:PUT(PX,PY),SPLASH%
  67. 740  LOCATE 1:PRINT "         TROPPER MISSED TARGET          "
  68. 750  FOR W=1 TO 100:GOSUB 830:NEXT W
  69. 760  TROOPS=TROOPS-1:SCORE=SCORE-10:JUMP=0:GOSUB 800
  70. 770  PUT(PX,PY),SPLASH%:NY=INT(RND(1)*30)+40
  71. 780  DEF SEG=0:POKE 1050,PEEK(1052):RETURN
  72. 790  '
  73. 800  WS=INT(RND(1)*11):DX=WS/6:WT=INT(RND(1)*225)+75:DY=WT/150:BOT=INT(RND(1)*15)+160
  74. 810  LOCATE 1:PRINT "SCORE";TAB(6);SCORE;TAB(13);"TROOPS";TAB(19);TROOPS;TAB(26);"WS";TAB(28);WS;TAB(34);"WT";TAB(36);WT;TAB(40);" "
  75. 820  RETURN
  76. 830  '
  77. 840  PLX=PLX-1
  78. 850  IF PLX=0 THEN LINE(1,PLY)-(28,PLY+10),1,BF:PLX=280:PLY=NY
  79. 860  PUT(PLX,PLY),PLANE%,PSET
  80. 870  RETURN
  81. 880  '
  82. 890  READ X,Y:N=FNSZ(X,Y)
  83. 900  DIM PLANE%(N)
  84. 910  PLANE%(0)=X:PLANE%(1)=Y
  85. 920  FOR I=2 TO N:READ PLANE%(I):NEXT I
  86. 930  READ X,Y:N=FNSZ(X,Y)
  87. 940  DIM TROOP%(N)
  88. 950  TROOP%(0)=X:TROOP%(1)=Y
  89. 960  FOR I=2 TO N:READ TROOP%(I):NEXT I
  90. 970  READ X,Y:N=FNSZ(X,Y)
  91. 980  DIM LAND%(N)
  92. 990  LAND%(0)=X:LAND%(1)=Y
  93. 1000  FOR I=2 TO N:READ LAND%(I):NEXT I
  94. 1010  READ X,Y:N=FNSZ(X,Y)
  95. 1020  DIM SPLASH%(N)
  96. 1030  SPLASH%(0)=X:SPLASH%(1)=Y
  97. 1040  FOR I=2 TO N:READ SPLASH%(I):NEXT I
  98. 1050  TEMP$="E8G16G3L16FEDL5EFF#G":TEMP1$="A8>C16C3L16DC<AG2":TEMP3$="B8>D16D3L16C<BA>D2":T$=TEMP$+TEMP1$:S$=TEMP$+TEMP3$
  99. 1060  CLS:SCREEN 1:COLOR 9,1
  100. 1070  PLAY "MB T90 O2 L8;XT$;"
  101. 1080  A$="P":L=11:X=75:GOSUB 1220
  102. 1090  A$="A":L=13:X=91:GOSUB 1220
  103. 1100  A$="R":L=15:X=107:GOSUB 1220
  104. 1110  A$="A":L=17:X=123:GOSUB 1220
  105. 1120  A$="T":L=19:X=139:GOSUB 1220
  106. 1130  PLAY "MB T90 O2 L8;XS$;"
  107. 1140  A$="R":L=21:X=155:GOSUB 1220
  108. 1150  A$="O":L=23:X=171:GOSUB 1220
  109. 1160  A$="O":L=25:X=187:GOSUB 1220
  110. 1170  A$="P":L=27:X=203:GOSUB 1220
  111. 1180  A$="E":L=29:X=219:GOSUB 1220
  112. 1190  A$="R":L=31:X=235:GOSUB 1220
  113. 1200  FOR I=1 TO 500:NEXT I
  114. 1210  RETURN
  115. 1220  FOR I=1 TO 64:PUT(X,I),TROOP%,PSET:NEXT I:PUT(X,64),TROOP%:PUT(X,64),LAND%:LOCATE 9,L:PRINT A$:RETURN
  116. 1230  '
  117. 1240  DATA &H38,&HB,&H5555,&H5555,&H5555,&H5555,&H5555,&H5555
  118. 1250  DATA &HA555,&H5555,&H5555,&H5655,&HD5A5,&HA956,&H5555,&HA55A
  119. 1260  DATA &H5AD5,&H550A,&H5A55,&HD5A5,&H2A8,&HAAAA,&HF5AF,&HAAEA
  120. 1270  DATA &HFAFF,&HABAA,&HEAF5,&HBFAA,&HAAFA,&HF5AA,&H55D5,&HF55F
  121. 1280  DATA &H5555,&HD555,&H5755,&H55F5,&H5555,&H55D5,&H5555,&H5555
  122. 1290  DATA &H55
  123. 1300  '
  124. 1310  DATA &H2A,&H17,&H0,&H0,&H0,&H0,&H80AA,&H0
  125. 1320  DATA &HA00,&HA8AA,&H0,&HAA00,&HAAAA,&H80,&HAA02,&HAAAA
  126. 1330  DATA &HA0,&HAA0A,&HAAAA,&HA8,&HAA0A,&HAAAA,&HA8,&HAA0A
  127. 1340  DATA &HAAAA,&HA8,&H8A02,&HA888,&HA0,&H8200,&H2000,&H80
  128. 1350  DATA &HC300,&H3000,&HC0,&H3B00,&H3B3F,&H0,&HF00,&H3C3F
  129. 1360  DATA &H0,&HB00,&H380C,&H0,&HA00,&HA8AA,&H0,&H0
  130. 1370  DATA &H2A,&H0,&H0,&H2A,&H0,&H0,&H2A,&H0
  131. 1380  DATA &H0,&H22,&H0,&H0,&H22,&H0,&H0,&H22
  132. 1390  DATA &H0,&H0,&H22,&H0,&H0,&H0,&H0,&H0
  133. 1400  '
  134. 1410  DATA &H22,&H17,&H0,&H0,&H0,&H0,&H0,&H0
  135. 1420  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  136. 1430  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  137. 1440  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  138. 1450  DATA &H0,&H0,&H0,&HC00F,&H0,&H8F00,&HC8,&H0
  139. 1460  DATA &H883,&H0,&HAA00,&HA8,&H0,&H800A,&H0,&HA00
  140. 1470  DATA &H80,&H0,&H800A,&H0,&H800,&H80,&H0,&H8008
  141. 1480  DATA &H0,&H800,&H80,&H0
  142. 1490  '
  143. 1500  DATA &H30,&H17,&H0,&H0,&H0,&H0,&H0,&H0
  144. 1510  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  145. 1520  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  146. 1530  DATA &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
  147. 1540  DATA &H0,&H0,&H0,&H0,&H5555,&H0,&H5500,&H5555
  148. 1550  DATA &H55,&H5505,&HFFFF,&H5055,&HFF15,&HFFFF,&H54FF,&HFF17
  149. 1560  DATA &HFFFF,&HD4FF,&HFF55,&HFFFF,&H55FF,&H5515,&HFD7F,&H5455
  150. 1570  DATA &H5505,&H5555,&H5055,&H5500,&H5555,&H55,&H300,&H57D5
  151. 1580  DATA &HC0,&H300,&HFFFF,&HC0,&H0,&HFC3F,&H0,&H0
  152.